#ifndef FILESYSTEM_H
#define FILESYSTEM_H

#include <QWidget>
#include<QListWidget>
#include<QPushButton>
#include<QHBoxLayout>
#include<QVBoxLayout>
#include"Protocol.h"
#include"sharefiledialog.h"
namespace Ui {
class FileSystem;
}

class FileSystem : public QWidget
{
    Q_OBJECT

public:
    explicit FileSystem(QWidget *parent = nullptr);
    ~FileSystem();

    void updateFileList(const QMap<QString,int>&fileList);
    //获取在线好友
    void onlineFriendList(const QList<QString>&usrList);
signals:
    void setStatus(bool status);
    void sendFriendList(const QList<QString>&usrList);
public slots:
    void createDir();
    void flushDir();

    void delDir_File();         //删除文件/文件夹
    void renameDir_File();      //重命名文件/文件夹
    void entryDir(const QModelIndex &index);        //进入文件夹

    void backDir();                 //返回上一级文件夹

    void uploadFile();              //上传文件

    void downLoadFile();            //下载文件

    //移动文件
    void moveFile();
    //选择移动文件的目标路径
    void selectTargetPath();

    void shareFile();
private:
    Ui::FileSystem *ui;

    //文件列表这一块
    QListWidget *m_fileListWidget;

    //待移动文件所在目录及文件名
    QString m_moveSourceFilePath;
    QString m_moveSourceFileName;

    ShareFileDialog *m_shareDialog=nullptr;
};

#endif // FILESYSTEM_H
